//
//  TDTableViewController.m
//  TotalDemo
//
//  Created by gujian on 16/4/18.
//  Copyright © 2016年 gujian. All rights reserved.
//

#import "TDTableViewController.h"

static NSString * const kIdentifier = @"cell";

static CGFloat kHeight_TableViewCell = 667/5.0 ;

@interface TDTableViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic, strong) UITableView *tableView;

@end

@implementation TDTableViewController

/**
 *  重用机制解析
 *  首先，刚开始显示界面的时候，会创建出铺满屏幕数量的cell，以5个为例
 *  这5个cell被放入到 visibleCells 中，此时reusableTableCells为空
 *  当上滑UITableView时，因为reusableTableCells为空，会创建第6(标号为5)个cell,然后显示在屏幕上
 *  此时第1个cell会被加入到reusableTableCells中，当再次上滑一个cell高度时，新的cell会复用第一个cell
 *  依次类推
 *  0->6->12
 *  1->7->13
 *  2->8->14
 *  3->9->15
 *  4->10->16
 *  5->11->17
 *  创建第1个cell的理由为第一个cell(标号为0)没有完全离开屏幕，第6(标号为5)个就将出现
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self setupTableView];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = YES;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.navigationBar.hidden = NO;
}

- (void)setupTableView
{
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = [UIColor clearColor];
    [tableView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kIdentifier];
    [self.view addSubview: tableView];
    _tableView = tableView;
}


#pragma mark - UITableView dataSource

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 30;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kIdentifier];
    cell.backgroundColor = [UIColor randomColor];
    
    LotLog(@"originText:%@",cell.textLabel.text);
    cell.textLabel.text = [NSString stringWithFormat:@"%@",@(indexPath.row)];
    LotLog(@"currentText:%@\nindex:%@",cell.textLabel.text,@(indexPath.row));

    
    return cell;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    
}

#pragma mark - UITableView delegate

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return CGFLOAT_MIN;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return kHeight_TableViewCell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return CGFLOAT_MIN;
}

@end
